package compilador.semantico;

import compilador.lexico.TipoToken;

/**
 * Representa as propriedades específicas dos símbolos da tabela de símbolos que
 * têm a categoria 'tipo'.
 *
 * @author Carlos H V Pinto
 * @author Lucas S Bueno
 */
public class PropriedadesTipo extends PropriedadesSimboloBasico {

    private String nome; //tipo atual. se for igual a tipoBasico então este tipo não foi renomeado.
    private String tipoBasico; //tipo original
    private boolean ponteiro; //verifica se o tipo é ponteiro

    public PropriedadesTipo(String lexema) {
        super(lexema, TipoToken.Identificador, CategoriaSimbolo.Tipo);
        ponteiro = false;
    }

    public PropriedadesTipo(String lexema, TipoToken tipoToken, CategoriaSimbolo categoria) {
        super(lexema, tipoToken, categoria);
        ponteiro = false;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getTipoBasico() {
        return tipoBasico;
    }

    public void setTipoBasico(String tipoBasico) {
        this.tipoBasico = tipoBasico;
    }

    public boolean isPonteiro() {
        return ponteiro;
    }

    public void setPonteiro(boolean ponteiro) {
        this.ponteiro = ponteiro;
    }
}
